import { Controller, Get, Post, Body, Patch, Param, Delete, Query, UseInterceptors, Req } from '@nestjs/common';
import { QustionService } from './qustion.service';
import { CreateQustionDto } from './dto/create-qustion.dto';
import { UpdateQustionDto, UpdateSingleQuestionDto } from './dto/update-qustion.dto';
import { FindQuestionDto } from './dto/find-question.dto';
import { commonInterceptor } from 'src/interceptor/common.interceptor';
import { AuthGuard } from '@nestjs/passport';
import { UseGuards } from '@nestjs/common';

// const questionData = [
//   {
//     id: '1',
//     title: '问卷1',
//     isStar: true,
//     isPublished: false,
//     answerCount: 5,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '2',
//     title: '问卷2',
//     isStar: false,
//     isPublished: true,
//     answerCount: 3,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '3',
//     title: '问卷3',
//     isStar: true,
//     isPublished: false,
//     answerCount: 1,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '5',
//     title: '问卷5',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '6',
//     title: '问卷6',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '7',
//     title: '问卷7',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '8',
//     title: '问卷8',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '9',
//     title: '问卷9',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '10',
//     title: '问卷10',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '11',
//     title: '问卷11',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '12',
//     title: '问卷12',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '113',
//     title: '问卷113',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '1113',
//     title: '问卷1113',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '11113',
//     title: '问卷111113',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '11111113',
//     title: '问卷11111131',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '234',
//     title: '问卷2341',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '334',
//     title: '问卷334',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '444',
//     title: '问卷4444',
//     isPublished: true,
//     isStar: false,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '01',
//     title: '问卷01',
//     isPublished: true,
//     isStar: true,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '02',
//     title: '问卷02',
//     isPublished: true,
//     isStar: true,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '03',
//     title: '问卷03',
//     isPublished: true,
//     isStar: true,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '04',
//     title: '问卷04',
//     isPublished: true,
//     isStar: true,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '05',
//     title: '问卷05',
//     isPublished: true,
//     isStar: true,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '06',
//     title: '问卷06',
//     isPublished: true,
//     isStar: true,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '07',
//     title: '问卷07',
//     isPublished: true,
//     isStar: true,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '08',
//     title: '问卷08',
//     isPublished: true,
//     isStar: true,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '09',
//     title: '问卷09',
//     isPublished: true,
//     isStar: true,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
//   {
//     id: '011',
//     title: '问卷011',
//     isPublished: true,
//     isStar: true,
//     answerCount: 2,
//     createAt: '3月10日 13:23',
//   },
// ];
@Controller('question')
export class QustionController {
  constructor(private readonly qustionService: QustionService) {}

  //创建mockQuestion列表
  @Post('/mock')
  createMockQuestion(@Body() createMockDto: any) {
    return this.qustionService.createMockQuestiona(createMockDto);
  }

  //创建Question
  @Post()
  @UseGuards(AuthGuard('jwt'))
  create(@Req() req, @Body() createQustionDto: CreateQustionDto) {
    // return this.qustionService.create(createQustionDto);
    return this.qustionService.create(req.user.id, createQustionDto);
  }
  //获取全部QuestionList数据
  @Get()
  findAll(@Query() query: FindQuestionDto) {
    return this.qustionService.findAll(query);
  }
  //获取单个Question数据
  @Get(':id')
  @UseInterceptors(commonInterceptor)
  findOne(@Param('id') id: string) {
    return this.qustionService.findOne(+id);
  }
  //批量修改Question数据
  @Patch('batch')
  updateBatchQuestion(@Body() updateQustionDto: UpdateQustionDto) {
    return this.qustionService.updateBatchQuestion(updateQustionDto);
  }
  //修改单个Question数据
  @Patch(':id')
  updateSingleQuestion(@Param('id') id: string, @Body() updateQustionDto: UpdateSingleQuestionDto) {
    return this.qustionService.updateSingleQuestion(+id, updateQustionDto);
  }
  //删除单个Question数据
  @Delete(':id')
  remove(@Param('id') id: string) {
    return this.qustionService.remove(+id);
  }
  //复制单个Question数据
  @Post('duplicate/:id')
  duplicate(@Param('id') id: string) {
    return { id };
  }
}
